package com.zkt.subject.domain.service;

import com.zkt.subject.domain.entity.SubjectCategoryBO;
import com.zkt.subject.domain.entity.SubjectLabelBO;
import com.zkt.subject.domain.entity.SubjectUserLabelBO;
import com.zkt.subject.infra.entity.UserInfo;

import java.util.List;

/**
 * @author 赵开泰
 * @program jc-club
 * @date 2025/3/27
 * @description 用户标签关系service层
 **/

public interface SubjectUserLabelDomainService {
	
	/**
	 * 添加用户标签关系
	 *
	 * @param subjectUserLabelBO 用户标签关系
	 * @return 是否成功
	 */
	Boolean add(SubjectUserLabelBO subjectUserLabelBO);
	
	/**
	 * 删除用户标签关系
	 *
	 * @param subjectUserLabelBO 需要删除的用户标签关系
	 * @return 是否成功
	 */
	Boolean remove(SubjectUserLabelBO subjectUserLabelBO);
	
	/**
	 * 获取用户期望标签
	 *
	 * @param userInfo 用户信息
	 * @return 用户信息
	 */
	List<SubjectLabelBO> getUserLabels(UserInfo userInfo);
	
	/**
	 * 获取用户期望的分类和标签
	 *
	 * @param userInfo 用户信息
	 * @return 用户信息
	 */
	List<SubjectCategoryBO> queryCategoryAndLabel(UserInfo userInfo);
}